<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="umsroot.css">
<TITLE>
Exploiting ECLiPSe Features
</TITLE>
</HEAD>
<BODY >
<A HREF="umsroot137.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="umsroot135.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc301">22.3</A>&nbsp;&nbsp;Exploiting ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> Features</H2>
When rewriting existing applications as well as when writing new programs,
it is useful to bear in mind important ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> features which can make
programs easier to write and/or faster:
<UL CLASS="itemize"><LI CLASS="li-itemize">
The maximum performance is obtained when calling <A HREF="../bips/kernel/obsolete/nodbgcomp-0.html"><B>nodbgcomp/0</B></A><A NAME="@default1183"></A>
at the beginning of the session, before compiling any program and loading
any libraries.<BR>
<BR>
<LI CLASS="li-itemize">ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> arrays and global variables (<A HREF="../bips/kernel/storage/setval-2.html"><B>setval/2, getval/2</B></A><A NAME="@default1184"></A>) are usually
more suitable to store permanent data than <A HREF="../bips/kernel/dynamic/assert-1.html"><B>assert/1</B></A><A NAME="@default1185"></A> is, and are usually
faster.<BR>
<BR>
<LI CLASS="li-itemize">ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> has a number of language extensions which make programming
easier, see chapter <A HREF="umsroot021.html#chaplanguage">5</A>.<BR>
<BR>
<LI CLASS="li-itemize">The predicates <B>get_flag/2</B>, <B>get_flag/3</B>,
<B>get_file_info/3</B>, <B>get_stream_info/3</B>, <B>get_var_info/3</B>
give a lot of useful information about the system and the data.<BR>
<BR>
<LI CLASS="li-itemize">The ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> macros often help to solve syntactic problems
(see chapter <A HREF="umsroot066.html#chapmacros">12</A>).<BR>
<BR>
<LI CLASS="li-itemize">The TkECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> GUI provides many features that should make
developing programs easier than with the traditional tty interface.<BR>
<BR>
<LI CLASS="li-itemize">It is worth familiarising oneself with the debugger's features, 
see chapter <A HREF="umsroot074.html#chapdebug">14</A>.<BR>
<BR>
<LI CLASS="li-itemize">ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> is highly customizable, even problems which seemingly
require modification of the ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> sources
can very often be solved at the Prolog level.
</UL>
<HR>
<A HREF="umsroot137.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="umsroot135.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
</BODY>
</HTML>
